<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  
    <input id="file" type="file" name="file">
    <img src="" id="img" alt="">
    <button id="btn">上传</button>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
  <script>
    /* 
      FormData
       容器，用于上传，可以存储文件 可以存储普通字符串
    */
    var file = document.querySelector('#file');
    var oImg = document.querySelector('#img');
    // 声明一个容器
    var formData = new FormData();
    /* 
      空容器
        添加数据
          formData.append(key,v)
        删除数据
        FormData.delete(key)

    */
    file.onchange = function(){
      // 选中的文件
      var selectedFile = this.files[0];
      // 往formData中插入图片
      formData.append('file', selectedFile);
      // 声明fileReader实例
      var fd = new FileReader();
      // 文件读取成base64格式
      fd.readAsDataURL(selectedFile);
      fd.onload = function(){
        // 文件读取完毕事件  结果在 fd.result属性上
        oImg.src = this.result;
      }
      
    }

    $('#btn').click(function(){
      $.ajax({
        url: '/upload',
        type: 'post',
        processData: false, //必须 缓存关了
        contentType: false, //必须 关闭 设置 数据格式（以 数据本身格式为准 xxxxx urlencoded）
        data: formData,
        success: function(res){
          if(res.code === 0){
            alert('上传成功');
            history.go(0);
          }
        }
      })
    })
  </script>
</body>
</html>